package com.baizhiedu.injection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 功能：
 * 作者：HZj
 * 日期：2025/1/5 16:49
 */
@Service
public class UserServiceImpl implements UserService {
    /*@Autowired
    @Qualifier("userDAOImpl")*/
    //直接把@Autowired注解放置在成员变量至上，Spring会通过反射直接对成员变量进行注入（赋值）
//    @Resource(name = "userDAOImpl")
    @Resource
    /*注意：如果在应用Resource注解时，名字没有配对成功，那么他会继续按照类型进行注入*/
    private UserDAO userDAO;

    public UserDAO getUserDAO() {
        return userDAO;
    }

//    @Autowired
    /*@Autowired是基于类型的注入：注入对象的类型，必须与目标成员标量类型相同或者是其子类（实现类）*/
/*    @Autowired
    @Qualifier("userDAOImpl")*/
    public void setUserDAO(UserDAO userDAO) {
        System.out.println("UserServiceImpl.setUserDAO");
        this.userDAO = userDAO;
    }

    @Override
    public void register() {
        userDAO.save();
    }
}
